import TIM from '../../utils/tim-wx';
const { HTTP } = require('../../utils/http');
const { request } = new HTTP();
const app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    messages: [],
    inputContent: '东东好',
    lastMessageId: 'none',
    tim: null
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function () {
    // let options = {
    //   SDKAppID: 1400517677 // 接入时需要将0替换为您的即时通信应用的 SDKAppID
    // };
    // // 创建 SDK 实例，TIM.create() 方法对于同一个 SDKAppID 只会返回同一份实例
    // let tim = TIM.create(options); // SDK 实例通常用 tim 表示
    // this.setData({
    //   tim
    // })
    this._getImUsersig(app.globalData.tim)
    // tim.on(TIM.EVENT.SDK_READY, this.sendMsg);
    app.globalData.tim.on(TIM.EVENT.SDK_READY, function(event) {
      // console.log('SDK_READY')
      // that.globalData.isImLogin = true
      // wx.setStorageSync('isImLogin', true)
      // 收到离线消息和会话列表同步完毕通知，接入侧可以调用 sendMessage 等需要鉴权的接口
      // event.name - TIM.EVENT.SDK_READY
      // 拉取会话列表
      _getConversationList()

      function _getConversationList() {
        // 拉取会话列表
        let promise = app.globalData.tim.getConversationList();
        promise.then(function(imResponse) {
          
          const conversationList = imResponse.data.conversationList; // 会话列表，用该列表覆盖原有的会话列表
          console.log('---_getConversationList--')
          console.log(imResponse)
          console.log(conversationList)
        }).catch(function(imError) {
          console.warn('getConversationList error:', imError); // 获取会话列表失败的相关信息
        });
      }
     
    })
    app.globalData.tim.on(TIM.EVENT.MESSAGE_RECEIVED, function(event) {
      console.log('---接受信息---')
      console.log(event)
    })



  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },


  sendMsg(){
    // 发送文本消息，Web 端与小程序端相同
    // 1. 创建消息实例，接口返回的实例可以上屏
    let message = this.data.tim.createTextMessage({
      to: '2',
      conversationType: TIM.TYPES.CONV_C2C,
      payload: {
        text: this.data.inputContent
      }
    });
    // 2. 发送消息
    let promise = this.data.tim.sendMessage(message);
    promise.then(function(imResponse) {
      // 发送成功
      console.log(imResponse);
    }).catch(function(imError) {
      // 发送失败
      console.warn('sendMessage error:', imError);
    });
  },
  async _getImUsersig(tim) {
    const {returnCode = '', bean = {}} = await request({
      url: '/api/im/usersig',
      method: 'get',
      data: {}
    });

    if (returnCode === '0000') {
      console.log('--/api/im/usersig--')
      console.log(bean)
      console.log(app.globalData )
      // userID: app.globalData.userInfo.id 
      let promise =  tim.login({userID:  app.globalData.userInfo.id  + '', userSig: bean});
      promise.then(function(imResponse) {
        console.log(imResponse.data); // 登录成功
        if (imResponse.data.repeatLogin === true) {
          // 标识账号已登录，本次登录操作为重复登录。v2.5.1 起支持
          console.log(imResponse.data.errorInfo);
        }
      }).catch(function(imError) {
        console.warn('login error:', imError); // 登录失败的相关信息
      });
    }
  },
  onClickLeft() {
    wx.navigateBack({
      delta: 1
    });
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})